﻿using System;
using System.Linq;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Medianamik.Core;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Text;
using System.Globalization;
using Medianamik.Core.Urls;
using Medianamik.Globalization;

namespace Medianamik.UI.Controls
{
    //public class URLBox : BaseMedianamikControl, IMedianamikControl
    //{
    //    #region Child Controls

    //    private TextBox textbox = new TextBox();
    //    private Button btnGetPath = null;

    //    #endregion

    //    protected override void CreateControlHierarchy()
    //    {
    //        #region TextBox

    //        textbox.ID = "text";
    //        textbox.Text = (_value == null) ? String.Empty : _value.ToString();
    //        textbox.CssClass = "TxtBox";

    //        if (ControlInfo.Width.HasValue)
    //        {
    //            textbox.Width = ControlInfo.Width.Value;
    //        }
    //        else
    //        {
    //            textbox.Width = WIDTH;
    //        }
    //        Controls.Add(textbox);

    //        #endregion

    //        AddRequiredFieldValidator(textbox.ID);
    //        AddRegexFieldValidator(textbox.ID);
    //        AddUniqueFieldValidator(textbox.ID);

    //        #region Button

    //        btnGetPath = new Button();
    //        btnGetPath.Text = Translator.Translate("Medianamik.UI", "URLBox_GoButton");
    //        btnGetPath.ID = "btnGetPath";
    //        btnGetPath.Click += new EventHandler(btnGetPath_Click);
    //        Controls.Add(btnGetPath);

    //        #endregion
    //    }

    //    protected void btnGetPath_Click(object sender, EventArgs e)
    //    {
    //        var node = NodeManager.GetNode<ContentNode>(NodeId);
    //        //Contruire une Url
    //        var nodes = node.ParentsOfSameType.Where(n => n.UseInChildUrls).ToList();
    //        nodes.Sort((n1, n2) => n1.Depth.CompareTo(n2.Depth));
    //        nodes.Add(node);
    //        PathSegmentCollection segments = new PathSegmentCollection();
    //        int i = 0;
    //        nodes.ForEach(n => segments.Add(i++, new PathSegment(n.DisplayName)));
    //        IPathBuilder pathBuilder = new ObjectFactory().GetUrlBuilder();
    //        textbox.Text = pathBuilder.BuildUrl(segments, MedianamikContext.Current.EditionCulture);

    //        //var node = NodeManager.GetNode<ContentNode>(NodeId);
    //        //node.DefaultCulture = MedianamikContext.Current.EditionCulture.Name;
    //        //textbox.Text = node.RelativeUrl;
    //    }

    //    public override void RenderControl(HtmlTextWriter writer)
    //    {
    //        BeginRenderControl(writer);
    //        textbox.RenderControl(writer);
    //        btnGetPath.RenderControl(writer);
    //        EndRenderControl(writer);
    //    }

    //    #region Abstract Members

    //    public override Type TypeOfValue
    //    {
    //        get { return typeof(string); }
    //    }

    //    private object _value;
    //    public override object Value
    //    {
    //        get
    //        {
    //            EnsureChildControls();
    //            return textbox.Text;
    //        }
    //        set { _value = value; }
    //    }
    //    #endregion
    //}
}
